package lv.clientedisqueria.model.tipoSoporte;

import java.util.ArrayList;
import java.util.List;

import lv.clientedisqueria.model.DisqueriaTablaModelo;
import lv.clientedisqueria.model.Modelo;
import lv.mensajeriadisqueria.dto.TipoSoporteDto;
import lv.mensajeriadisqueria.idomain.ITipoSoporte;

/**
 *	Modelo de usuario
 */
public class TipoSoporteModel extends Modelo<ITipoSoporte> {

	private final static String PROPERTY_CHANGE_CAMBIAR_TIPO_SOPORTE = "cambiarTipoSoporte";
	
	private final TipoSoporteTablaModel tipoSoporteTablaModel;
	
	public TipoSoporteModel() {
		tipoSoporteTablaModel = new TipoSoporteTablaModel(this);
	}

	@Override
	public String getPropertyChangeCambio() {
		return PROPERTY_CHANGE_CAMBIAR_TIPO_SOPORTE;
	}
	
	@Override
	public List<ITipoSoporte> buscarTodos() {
		// TODO aca hay que buscar a la base a todos los usuario
		List<ITipoSoporte> tipoSoporte = new ArrayList<ITipoSoporte>();
		TipoSoporteDto tipoSoporteDto = new TipoSoporteDto("Cassette");
		tipoSoporteDto.setIdTipoSoporte(1);
		    tipoSoporte.add(tipoSoporteDto);
		    TipoSoporteDto tipoSoporteDto2 = new TipoSoporteDto("CD");
		    tipoSoporteDto2.setIdTipoSoporte(2);
		 	tipoSoporte.add(tipoSoporteDto2);
		return tipoSoporte;
	}

	public void borrar() {
		// TODO aca hay que llamar al clienteserver para que haga el pedido
		tipoSoporteTablaModel.remover();
		notificar(Modelo.BORRAR);
	}

	public void insertar() {
		tipoSoporteTablaModel.adherirOModificar(new TipoSoporteDto());
		notificar(Modelo.INSERTAR);
	}
	public void guardar(ITipoSoporte estilo) {
		// TODO Aca hay que llamar al server para guardar el objeto.
		tipoSoporteTablaModel.adherirOModificar(estilo);
		notificar(Modelo.GUARDADO);
	}

	@Override
	public DisqueriaTablaModelo<ITipoSoporte> getTablaModel() {
		return tipoSoporteTablaModel;
	}
}